#pragma once
#include "animSprite.h"
#include "IEntity.h"
#include "IObject.h"
#include <string>
#include <iostream>

namespace game
{
	
	class StaticEntity:public IEntity,public IObject	// doodads//
	{
		//Entity Fields
		sf::Vector2f		_pos;
		animSprite *		_sprite;
		sf::RenderWindow *	_window;
		//Object Fields
		std::string			_name;
		int					_object_type_id;

	public:
		StaticEntity(sf::Vector2f pos, animSprite * sprite, sf::RenderWindow * window,
						std::string name, int object_type_id)
		{
			set_position(pos);
			set_anim_sprite(sprite);
			set_render_window(window);
			set_name(name);
			set_object_type_id(object_type_id);
		}

		//Entity Methods
		sf::Vector2f	get_position(){return _pos;}
		void			set_position(sf::Vector2f pos){_pos = pos;}
		animSprite *	get_anim_sprite(){return _sprite;}
		void			set_anim_sprite(animSprite * sprite){_sprite = sprite;}
		sf::RenderWindow *	get_render_window(){return _window;}
		void				set_render_window(sf::RenderWindow * window){_window = window;}

		void Draw()
		{
			sf::Vector2f pos = get_position();
			get_anim_sprite()->updatePosition(sf::Vector2u(pos.x,pos.y));
			get_anim_sprite()->draw(*_window);
		}
		//void Update(){}
		//void Init(){}

		//Object Methods
		std::string get_name(){return _name;}
		void		set_name(std::string name){_name = name;}
		int			get_object_type_id(){return _object_type_id;}
		void		set_object_type_id(int id){_object_type_id = id;}

		~StaticEntity(){};
		//name
		//desc

		//update
	};

}